home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 April: Mac OS SDK / Dev.CD Apr 96 SDK / Dev.CD Apr 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / Environment Additions / Symantec / Additions / SOM (SPM) / somcm.xh < prev    next >
Encoding:
Text File  |  1995-10-27  |  11.6 KB  |  416 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: :SOMobjects™ for Mac OS:MPW Additions:Interfaces:CIncludes:somcm.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxh.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *      Copyright:    © 1994,1995 by Apple Computer, Inc.
  13.  *                  All rights reserved.
  14.  * 
  15.  *    10H9767, 10H9769  (C) COPYRIGHT International Business Machines Corp. 1992,1994
  16.  *    All Rights Reserved
  17.  *    Licensed Materials - Property of IBM
  18.  *    US Government Users Restricted Rights - Use, duplication or
  19.  *    disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  20.  * 
  21.  *   SOMClassMgr: System Object Model class manager
  22.  */
  23.  
  24.  
  25. #ifndef SOM_SOMClassMgr_xh
  26. #define SOM_SOMClassMgr_xh
  27.  
  28. class SOMClassMgr;
  29.  
  30. #define SOMClassMgr_MajorVersion 70
  31. #define SOMClassMgr_MinorVersion 1
  32.  
  33. /* C++ SOM defs */
  34. #include <somcls.xh>
  35.  
  36. /* C++ parent defs */
  37. #ifndef SOM_SOMObject_xh
  38. #include <somobj.xh>
  39. #endif
  40.  
  41. #ifndef SOMClassMgr_API
  42. #define SOMClassMgr_API
  43. /*
  44.  * -- The Class API
  45.  */
  46.  
  47. /*
  48.  * Start of user-defined types:
  49.  */
  50. class SOMClass;
  51. class SOMObject;
  52. class Repository;
  53. #ifndef _IDL_SEQUENCE_SOMClass_defined
  54. #define _IDL_SEQUENCE_SOMClass_defined
  55. typedef struct {
  56.     unsigned long _maximum;
  57.     unsigned long _length;
  58.     SOMClass **_buffer;
  59. } _IDL_SEQUENCE_SOMClass;
  60. #endif /* _IDL_SEQUENCE_SOMClass_defined */ 
  61. typedef
  62. SOMClass* SOMClassMgr_SOMClassArray;
  63.  
  64. /*
  65.  *  Used for SOM 1.0 binary compatibility
  66.  */
  67.  
  68. #ifndef SOM_DONT_USE_SHORT_NAMES
  69.  
  70. #ifndef SOM_DONT_USE_SHORT_NAMES
  71. #ifndef SOMTGD_SOMClassArray
  72.     #ifdef SOMClassArray
  73.         #undef SOMClassArray
  74.         #define SOMTGD_SOMClassArray 1
  75.     #else
  76.         #define SOMClassArray SOMClassMgr_SOMClassArray
  77.     #endif /* SOMClassArray */
  78. #endif /* SOMTGD_SOMClassArray */
  79. #endif /* SOM_DONT_USE_SHORT_NAMES */
  80. #endif /* SOM_DONT_USE_SHORT_NAMES */
  81.  
  82. /*
  83.  * End of user-defined types.
  84.  */
  85.  
  86. #ifdef OLDIBMSOMAPISUPPORT
  87. #define SOMClassMgrCClassData SOMClassMgrClassData
  88. #define SOMClassMgrNewClass(major,minor) somNewVersionedClassReference(SOMClassMgr,major,minor)
  89. #endif
  90.  
  91. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  92. #define SOMClassMgrMetaClass SOMClass
  93.  
  94.  
  95. /* The API to the SOMClassMgr class object, and the methods it introduces. */
  96. SOMEXTERN struct SOMClassMgrClassDataStructure {
  97. #ifdef OLDIBMSOMAPISUPPORT
  98.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  99. #else
  100.     long zero;
  101. #endif
  102.     somStaticClassInfo *sci;
  103.     somDToken        instanceDataToken;
  104.     long reserved [3];
  105.     somMToken somFindClsInFile;
  106.     somMToken somFindClass;
  107.     somMToken somClassFromId;
  108.     somMToken somRegisterClass;
  109.     somMToken somRegisterClassLibrary;
  110.     somMToken somUnregisterClass;
  111.     somMToken somBeginPersistentClasses;
  112.     somMToken somEndPersistentClasses;
  113.     somMToken somJoinAffinityGroup;
  114.     somMToken somLocateClassFile;
  115.     somMToken somLoadClassFile;
  116.     somMToken somUnloadClassFile;
  117.     somMToken somGetInitFunction;
  118.     somMToken somMergeInto;
  119.     somMToken somSubstituteClass;
  120.     somMToken _get_somInterfaceRepository;
  121.     somMToken _set_somInterfaceRepository;
  122.     somMToken _get_somRegisteredClasses;
  123.     somMToken somGetRelatedClasses;
  124.     somMToken somRegisterClassWatcher;
  125.     somMToken somUnregisterClassWatcher;
  126.     somMToken somNotifyClassWatchers;
  127. } SOMDLINK SOMClassMgrClassData;
  128.  
  129. #if !defined(SOMClassMgr_Class_Source) && !defined(SOM_Module_somcm_Source)
  130. #if PRAGMA_IMPORT_SUPPORTED
  131. #pragma import list SOMClassMgrClassData
  132. #endif
  133. #endif
  134.  
  135.  
  136. /*
  137.  * -- Typedefs and inline method declarations for left path inherited methods
  138.  * -- are omitted because this compilation had -museinheritedmethods in effect
  139.  */
  140.  
  141.  
  142. /*
  143.  * -- Typedefs for SOMClassMgr Method Procedures
  144.  */
  145. SOMEXTERN {
  146. typedef Repository*   (* SOMLINK somTD_SOMClassMgr__get_somInterfaceRepository)(SOMClassMgr *somSelf);
  147. typedef void   (* SOMLINK somTD_SOMClassMgr__set_somInterfaceRepository)(SOMClassMgr *somSelf,
  148.         Repository* somInterfaceRepository);
  149. typedef SOMClass*   (* SOMLINK somTD_SOMClassMgr_somClassFromId)(SOMClassMgr *somSelf,
  150.         somId classId);
  151. typedef SOMClass*   (* SOMLINK somTD_SOMClassMgr_somFindClass)(SOMClassMgr *somSelf,
  152.         somId classId,
  153.         long majorVersion,
  154.         long minorVersion);
  155. typedef SOMClass*   (* SOMLINK somTD_SOMClassMgr_somFindClsInFile)(SOMClassMgr *somSelf,
  156.         somId classId,
  157.         long majorVersion,
  158.         long minorVersion,
  159.         corbastring file);
  160. typedef long   (* SOMLINK somTD_SOMClassMgr_somSubstituteClass)(SOMClassMgr *somSelf,
  161.         corbastring origClassName,
  162.         corbastring newClassName);
  163. typedef long   (* SOMLINK somTD_SOMClassMgr_somUnregisterClass)(SOMClassMgr *somSelf,
  164.         SOMClass* classObj);
  165. typedef SOMClass*   (* SOMLINK somTD_SOMClassMgr_somLoadClassFile)(SOMClassMgr *somSelf,
  166.         somId classId,
  167.         long majorVersion,
  168.         long minorVersion,
  169.         corbastring file);
  170. typedef corbastring   (* SOMLINK somTD_SOMClassMgr_somLocateClassFile)(SOMClassMgr *somSelf,
  171.         somId classId,
  172.         long majorVersion,
  173.         long minorVersion);
  174. typedef corbastring   (* SOMLINK somTD_SOMClassMgr_somGetInitFunction)(SOMClassMgr *somSelf);
  175. typedef void   (* SOMLINK somTD_SOMClassMgr_somRegisterClass)(SOMClassMgr *somSelf,
  176.         SOMClass* classObj);
  177. typedef long   (* SOMLINK somTD_SOMClassMgr_somUnloadClassFile)(SOMClassMgr *somSelf,
  178.         SOMClass* classObj);
  179. typedef _IDL_SEQUENCE_SOMClass   (* SOMLINK somTD_SOMClassMgr__get_somRegisteredClasses)(SOMClassMgr *somSelf);
  180. typedef SOMClassMgr_SOMClassArray   (* SOMLINK somTD_SOMClassMgr_somGetRelatedClasses)(SOMClassMgr *somSelf,
  181.         SOMClass* classObj);
  182. typedef void   (* SOMLINK somTD_SOMClassMgr_somMergeInto)(SOMClassMgr *somSelf,
  183.         SOMObject* targetObj);
  184. typedef void   (* SOMLINK somTD_SOMClassMgr_somRegisterClassLibrary)(SOMClassMgr *somSelf,
  185.         corbastring libraryName,
  186.         somMethodPtr libraryInitRtn);
  187. typedef void   (* SOMLINK somTD_SOMClassMgr_somBeginPersistentClasses)(SOMClassMgr *somSelf);
  188. typedef void   (* SOMLINK somTD_SOMClassMgr_somEndPersistentClasses)(SOMClassMgr *somSelf);
  189. typedef boolean   (* SOMLINK somTD_SOMClassMgr_somJoinAffinityGroup)(SOMClassMgr *somSelf,
  190.         SOMClass* newClass,
  191.         SOMClass* affClass);
  192. typedef void   (* SOMLINK somTD_SOMClassMgr_somRegisterClassWatcher)(SOMClassMgr *somSelf,
  193.         somMethodPtr callMe,
  194.         somToken cookie);
  195. typedef void   (* SOMLINK somTD_SOMClassMgr_somUnregisterClassWatcher)(SOMClassMgr *somSelf,
  196.         somMethodPtr callMe,
  197.         somToken cookie);
  198. typedef void   (* SOMLINK somTD_SOMClassMgr_somNotifyClassWatchers)(SOMClassMgr *somSelf,
  199.         SOMClass* classObj,
  200.         somToken mt,
  201.         long watchCode);
  202. }
  203.  
  204. #endif /* SOMClassMgr_API */
  205.  
  206.  
  207. /*
  208.  * -- This emitter treats Method Tokens as Thunks by default.
  209.  * -- Use the sc modifier "nothunks" to change this default
  210.  */
  211. #undef somresolve_
  212. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  213.  
  214. /*
  215.  * -- The C++ Wrapper Class for SOMClassMgr
  216.  */
  217. class SOMClassMgr : public SOMObject
  218. {
  219. public:
  220.  
  221. // SOMClassMgr::new registers use of the class object, and then uses somNew
  222. // to allocate memory and load the object method table pointer. 
  223. void *operator new(size_t size)
  224. {
  225.     SOM_IgnoreWarning(size);
  226.     // Allocate memory using the default allocator for SOMClassMgr, and
  227.     // clear mem & set method table pointer, call basic initialization
  228.     return (void*) somNewObject(SOMClassMgr);
  229. }
  230.  
  231. // SOMClassMgr::delete uses the default deallocator for the object's class.
  232. void operator delete(void * obj)
  233. {
  234.     if (obj) {
  235.         SOM_Resolve(obj,SOMObject,somFree)
  236.            ( (SOMObject*) obj );
  237.     }
  238. }
  239.  
  240. /* method: _get_somInterfaceRepository */
  241. Repository*   _get_somInterfaceRepository()
  242. {
  243.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,_get_somInterfaceRepository)
  244.     (this);
  245. }
  246.  
  247. /* method: _set_somInterfaceRepository */
  248. void   _set_somInterfaceRepository(Repository* somInterfaceRepository)
  249. {
  250.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,_set_somInterfaceRepository)
  251.     (this,somInterfaceRepository);
  252. }
  253.  
  254. /* method: somClassFromId */
  255. SOMClass*   somClassFromId(somId classId)
  256. {
  257.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somClassFromId)
  258.     (this,classId);
  259. }
  260.  
  261. /* method: somFindClass */
  262. SOMClass*   somFindClass(somId classId,
  263.         long majorVersion,
  264.         long minorVersion)
  265. {
  266.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somFindClass)
  267.     (this,classId,majorVersion,minorVersion);
  268. }
  269.  
  270. /* method: somFindClsInFile */
  271. SOMClass*   somFindClsInFile(somId classId,
  272.         long majorVersion,
  273.         long minorVersion,
  274.         corbastring file)
  275. {
  276.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somFindClsInFile)
  277.     (this,classId,majorVersion,minorVersion,file);
  278. }
  279.  
  280. /* method: somSubstituteClass */
  281. long   somSubstituteClass(corbastring origClassName,
  282.         corbastring newClassName)
  283. {
  284.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somSubstituteClass)
  285.     (this,origClassName,newClassName);
  286. }
  287.  
  288. /* method: somUnregisterClass */
  289. long   somUnregisterClass(SOMClass* classObj)
  290. {
  291.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somUnregisterClass)
  292.     (this,classObj);
  293. }
  294.  
  295. /* method: somLoadClassFile */
  296. SOMClass*   somLoadClassFile(somId classId,
  297.         long majorVersion,
  298.         long minorVersion,
  299.         corbastring file)
  300. {
  301.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somLoadClassFile)
  302.     (this,classId,majorVersion,minorVersion,file);
  303. }
  304.  
  305. /* method: somLocateClassFile */
  306. corbastring   somLocateClassFile(somId classId,
  307.         long majorVersion,
  308.         long minorVersion)
  309. {
  310.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somLocateClassFile)
  311.     (this,classId,majorVersion,minorVersion);
  312. }
  313.  
  314. /* method: somGetInitFunction */
  315. corbastring   somGetInitFunction()
  316. {
  317.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somGetInitFunction)
  318.     (this);
  319. }
  320.  
  321. /* method: somRegisterClass */
  322. void   somRegisterClass(SOMClass* classObj)
  323. {
  324.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somRegisterClass)
  325.     (this,classObj);
  326. }
  327.  
  328. /* method: somUnloadClassFile */
  329. long   somUnloadClassFile(SOMClass* classObj)
  330. {
  331.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somUnloadClassFile)
  332.     (this,classObj);
  333. }
  334.  
  335. /* method: _get_somRegisteredClasses */
  336. _IDL_SEQUENCE_SOMClass   _get_somRegisteredClasses()
  337. {
  338.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,_get_somRegisteredClasses)
  339.     (this);
  340. }
  341.  
  342. /* method: somGetRelatedClasses */
  343. SOMClassMgr_SOMClassArray   somGetRelatedClasses(SOMClass* classObj)
  344. {
  345.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somGetRelatedClasses)
  346.     (this,classObj);
  347. }
  348.  
  349. /* method: somMergeInto */
  350. void   somMergeInto(SOMObject* targetObj)
  351. {
  352.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somMergeInto)
  353.     (this,targetObj);
  354. }
  355.  
  356. /* method: somRegisterClassLibrary */
  357. void   somRegisterClassLibrary(corbastring libraryName,
  358.         somMethodPtr libraryInitRtn)
  359. {
  360.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somRegisterClassLibrary)
  361.     (this,libraryName,libraryInitRtn);
  362. }
  363.  
  364. /* method: somBeginPersistentClasses */
  365. void   somBeginPersistentClasses()
  366. {
  367.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somBeginPersistentClasses)
  368.     (this);
  369. }
  370.  
  371. /* method: somEndPersistentClasses */
  372. void   somEndPersistentClasses()
  373. {
  374.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somEndPersistentClasses)
  375.     (this);
  376. }
  377.  
  378. /* method: somJoinAffinityGroup */
  379. boolean   somJoinAffinityGroup(SOMClass* newClass,
  380.         SOMClass* affClass)
  381. {
  382.    return SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somJoinAffinityGroup)
  383.     (this,newClass,affClass);
  384. }
  385.  
  386. /* method: somRegisterClassWatcher */
  387. void   somRegisterClassWatcher(somMethodPtr callMe,
  388.         somToken cookie)
  389. {
  390.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somRegisterClassWatcher)
  391.     (this,callMe,cookie);
  392. }
  393.  
  394. /* method: somUnregisterClassWatcher */
  395. void   somUnregisterClassWatcher(somMethodPtr callMe,
  396.         somToken cookie)
  397. {
  398.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somUnregisterClassWatcher)
  399.     (this,callMe,cookie);
  400. }
  401.  
  402. /* method: somNotifyClassWatchers */
  403. void   somNotifyClassWatchers(SOMClass* classObj,
  404.         somToken mt,
  405.         long watchCode)
  406. {
  407.    SOM_ResolveD(this,SOMClassMgr,SOMClassMgr,somNotifyClassWatchers)
  408.     (this,classObj,mt,watchCode);
  409. }
  410.  
  411. };   /* SOMClassMgr */
  412.  
  413.  
  414.  
  415. #endif       /* SOM_SOMClassMgr_xh */
  416.